home *** CD-ROM | disk | FTP | other *** search
- @part(170KERMIT,root="USER")
- @Chapter<CYBER 170 KERMIT>
- @label<-k170>
- @Index[CDC]
- @Index[NOS]
- @Index[NOS/BE]
- @Index[CYBER]
- @begin<description,leftmargin +12,indent -12,spread 0>
- @i(Authors:)@\Jim Knutson, University of Texas
-
- @i(Version:)@\2.2
-
- @i(Date:)@\September 1984
- @end<description>
-
- Cyber Kermit was written for a Cyber 170/750 in
- FTN5, CDC's FORTRAN 77 compiler. It should run on any NOS or
- NOS/BE system with only minor changes to the I/O routines. This
- is a necessary evil since every Cyber site seems to run a
- different front end.
-
- @Section<Cyber File Systems>
-
- The features of a Cyber file system of greatest interest to
- KERMIT users are storage class, file structure, file
- specifications and character sets.
-
- @Subheading<Cyber Storage Classes>
-
- The NOS and NOS/BE operating systems use the concept of local and
- permanent file storage. This means that files that are to be
- kept around after a job is finished must be moved to permanent
- storage first. Jobs that wish to use a file from permanent
- storage must copy to local storage first before using it
- (actually, direct access permanent files help alleviate this
- problem). Most Kermit users will only want to use local files.
-
- @Subheading<Cyber File Structure>
-
- Many Cyber files use internal structure information much like VMS
- files. These internal structures are mainly used in executable
- binary files or certain CRM record types. The internal structure of
- files is not currently supported by Cyber Kermit. Cyber
- executable binaries, and multi-record files are not
- transferable using Kermit.
-
- @Subheading<Cyber File Specification>
-
- A Cyber file name consists of from 1 to seven alphanumeric
- characters. NOS systems allow the first character to be numeric
- but most Cyber processors do not support this. Cyber Kermit
- allows the first character to be a digit on NOS systems. Special
- characters are not allowed in the file name. File names beginning
- with ZZ or SCR should be avoided, since these are commonly used
- scratch file names. The Cyber Kermit command processor does not
- support wild cards at this time.
-
- @Subheading<Cyber Character Sets>
-
- Until the recent Cyber 800 Series mainframes, the character set
- used by most Cyber systems was a six bit Display Code character
- set. The six bit character sets supported by Cyber Kermit are the
- 63 character, 64 character and UT 64 character sets. These
- character sets not only differ in their ordering but also in the
- characters they use. Some use the underscore and percent sign,
- others do not. ASCII characters received by Cyber Kermit are
- translated to the appropriate display code when possible. A
- character that can not be translated will be set to a blank.
- Users of the 64 character set may have
- problems with colons at the end of a line being truncated or
- lines with sequential colons being split into two or more lines since
- the character value of a colon is 00B (half of an End-Of-Line).
-
- There are also several ASCII character sets in use on the various
- Cyber systems. One set, called 6/12, uses 6 bit display code
- characters with certain characters set aside as flags to indicate
- case (upper/lower) or control characters. Cyber Kermit does not
- support the 6/12 character set. Another ASCII character set is
- the 8/12 character set. This stores ASCII characters as 8 bits
- in a 12 bit byte. The exception to this is that an EOL (End-Of-Line)
- is indicated by the usual CDC convention of at least twelve bits
- of 0 (0000B) in the low order bits of the word. NUL characters
- are represented as 4000B to prevent interpretation as an
- EOL sequence. Cyber Kermit also support UT 8/12 ASCII.
- The difference between this and NOS 8/12 ASCII is UT 8/12 ASCII
- uses the NEL character (205B) from the 256 character ASCII set to
- represent an End-Of-Line.
-
- @Section<Program Operation>
-
- Cyber Kermit's prompt is "Kermit-170>". It must be run
- interactively and without any parameters. Commands can then be
- typed in like this:
- @begin<example>
- .@ux[kermit]
- Kermit-170>@ux[send foobar]
-
- [file foobar sent]
-
- Kermit-170>@ux[status]
-
- [performance statistics are printed]
-
- Kermit-170>@ux[receive]
-
- [files are received]
-
- Kermit-170>@ux[exit]
- .
- @End<example>
-
- @index<Help>
- Cyber Kermit mimics the DEC-20 style
- command parser in that a question mark followed by a carriage
- return may be placed anywhere on the command line. This will
- display the options available at that point. Unfortunately, the
- entire command will have to be retyped afterwards.
-
- Command keywords may be abbreviated to their shortest unique
- combination. This comes in very handy since Cyber Kermit does
- not support command completion.
-
- Cyber Kermit may only be run as a remote Kermit.
- It must be watched during transfer if the local
- Kermit has no timeout since it has no timeout capabilities.
-
- A Cyber filename is restricted to 7 alphanumeric characters with the first
- character being an alpha. Kermit will use the first 7 valid characters
- of any file being sent to the Cyber. If a file under that name already
- exists, an Error packet stating so will be sent back and Cyber Kermit will
- abort the transfer.
-
- @index<Parity>
- If you are having trouble transferring files with Kermit, it may
- be due to the parity. Cyber Kermit has no way of determining the
- parity of the connection so it just guesses that it will be NONE.
- If you are having problems getting the first packet to transfer,
- then this is probably the problem. If you are running with a
- parity other than NONE, then you must use the SET PARITY command
- every time you enter Cyber Kermit.
-
- @Section<Cyber Kermit Commands>
- The following is a list of Cyber Kermit commands and their description.
- @begin<description>
- @Index<!>
- ! @i<command>@\Execute a Cyber control command and then return to
- Kermit.
-
- @Index<EXIT>@index<QUIT>@Index<Control-C>
- EXIT, QUIT@\Exit from Kermit-170. You may also stop Kermit-170 in the midst of
- a transfer or during server operations by aborting the program (CTRL-C or
- CTRL-G ABORT); the program traps them and puts your terminal back to normal
- before halting.
-
- @Index<HELP>
- HELP [@i<topic>]@\Give Help. There's a general help text, plus
- separate help texts for each Kermit-170 command.
-
- @Index<PUSH>
- PUSH@\Exit to control command level saving the current Kermit
- environment. The environment will be restored when Kermit is
- reentered.
-
- @index<RECEIVE>
- RECEIVE@\Receive a file or group of files from the other host.
- If the name in the header packet is not a legal Cyber file name,
- the first 7 legal characters will be used.
- @blankspace<1 line>
- If the file already exits as a local file, Kermit will abort the transfer.
- If an error occurs during transfer, the file being received will be
- removed from the local file list to allow the transfer to be retried.
- You should escape back to your local Kermit after entering RECEIVE
- mode and give the SEND command.
-
- @index<SEND>
- SEND @i<filename>@\Send a file to the other host. The name of the file is
- passed to the other host in a file header packet, so that the file can be
- stored there with the same name.
- You should escape back to your local Kermit and give the RECEIVE
- command. If you don't do this fast enough the "send-init" packet may
- arrive prematurely. To prevent this, use SET DELAY or hit the RETURN key
- on your microcomputer if it does not timeout.
-
- @Index<SERVER>@Index<Control-C>
- SERVER@\Act as a server for another Kermit. Whatever options were
- previously SET will be used. The server may be shut down from the local
- Kermit by using the BYE or FINISH commands, or by
- connecting back to the Cyber, and typing Control-C or Control-G ABORT.
-
- @Index<SET>
- SET @i{keyword value}@\Establish system-dependent parameters. You can examine
- their values with the
- SHOW command. Numeric values may be decimal, octal (postfixed with a B),
- or hexadecimal (postfixed by an H). The following may be SET:
- @Begin(Description,leftmargin +8,indent -8)
- @index<Character Set>
- DATA-MODE @i<ctype>@\Set the character code to use for files
- received by Kermit-170. Allowable values for @i<ctype> are:
- ASCII, DISPLAY-CODE, IMAGE-ASCII, NOS-ASCII. The interpretation
- of these is dependent on the system. DISPLAY-CODE will be the
- six bit character set in use at the site (63 or 64). ASCII will
- be NOS 8/12 ASCII for all sites except the University of Texas.
- NOS-ASCII is used to describe NOS 8/12 ASCII at UT while ASCII
- describes UT 8/12 ASCII. The default character set in use when
- Kermit starts up is DISPLAY-CODE. Automatic character set
- recognition is used for sending files unless IMAGE-ASCII is set.
-
- @index<Debugging>
- DEBUG @i<option>@\Show packet traffic explicitly. Options are:
- @Begin(Description,leftmargin +8,indent -8)
- ALL@\Set all debug options.
-
- LOG-FILE @i<filename>@\Log states and packets to the specified file. The
- default log-file is file KERMLOG.
-
- OFF@\Don't display debugging information (this is the default). If
- debugging was in effect, turn it off and close any log file.
-
- PACKETS@\Display each incoming and outgoing packet (lengthy).
-
- STATES@\Show kermit state transitions and packet numbers (brief).
- @End(Description)
-
- DELAY @i<decimal-number>@\How many seconds to wait before sending the first
- packet. This gives you time to "escape" back and issue a RECEIVE command.
-
- @index<Duplex>
- DUPLEX @i<keyword>@\Changes the method of echoing characters when being
- prompted for commands.
- The choices are FULL and HALF. Full means the Cyber will echo the
- characters you type. Half means the local systems echoes them. Full is
- the default, and is used by most hosts.
-
- INIT-RETRY @i<decimal-number>@\Set the maximum number of retries allowed for
- the initial connection before giving up.
-
- @index<Parity>
- PARITY @i<keyword>@\Allows you to adjust the parity on characters
- sent or received by Kermit-170 to
- another system's requirements. The possibilities are NONE, EVEN, ODD,
- SPACE, or MARK. If NONE, then the 8th bit can be used for data when
- sending and receiving binary files. If other than NONE, the 8th bit
- on outgoing characters will be set to achieve the desired parity, and the
- 8th bit on incoming characters will be discarded. The default is NONE.
-
- RECEIVE @i{parameter value}@\These commands allow you to specify
- to the other Kermit what the packets it sends should look like,
- or to inform this Kermit what to expect. @i<Value> may be
- specified as a decimal number, an octal number (B suffix), or a
- hexadecimal number (H suffix). Characters values are specified
- as the numeric equivalent of the ASCII character.
- @Begin(Description,leftmargin +8,indent -8)
- END-OF-LINE @i<value>@\The octal value of the ASCII character to
- be used as a line terminator
- or packets, if one is required by the other system. Carriage return
- (15B) is the default.
-
- PACKET-LENGTH @i<value>@\Maximum packet length to send, decimal
- number, between 20 and 94,
- 94 by default.
-
- PAD-CHARACTER @i<value>@\Character to use for padding. Default is NUL.
-
- PAD-LENGTH @i<value>@\How much padding to send before a packet. Default is
- no padding.
-
- QUOTE-CHARACTER @i<value>@\What printable character to use for quoting of
- control characters.
-
- SYNC-CHARACTER @i<value>@\The control character that marks the beginning of
- the packet. Normally SOH (Control-A, ASCII 1). There should be no reason
- to change this.
-
- TIME-OUT @i<value>@\How many seconds the other Kermit should wait for a packet
- before asking for retransmission.
- @End(Description)
-
- @index<Performance Tuning>
- RDELAY @i<millisec>@\Set up a delay of @i<millisec> seconds
- before each TTY read. This can be used for performance tuning by
- causing enough delay that data will be ready when the read is
- issued. If data is not ready when the read is issued, the job
- will be swapped out. The delay should be specified as a multiple
- of 100. The default delay is 100 milliseconds.
-
- RETRY @i<value>@\Set the maximum number of retries for a given packet before
- giving up.
-
- SEND @i{parameter value}@\These commands allow you to specify how outgoing
- packets should look, in case the other Kermit has nonstandard requirements.
- @Begin(Description,leftmargin +8,indent -8)
- END-OF-LINE @i<value>@\The octal value of the ASCII character to be used as a
- line terminator for packets, if one is required by the other system. Carriage
- return (15B) by default.
-
- PACKET-LENGTH @i<value>@\Maximum packet length to send, decimal number,
- between 20 and 94, 94 by default.
-
- PAD-CHARACTER @i<value>@\Character to use for padding. Default is NUL.
-
- PAD-LENGTH @i<value>@\How much padding to send before a packet. Default is
- no padding.
-
- QUOTE-CHARACTER @i<value>@\What printable character to use for quoting of
- control characters. The default is "#" (43B). there should be no reason
- to change this.
-
- SYNC-CHARACTER @i<value>@\The control character that marks the beginning of
- the packet. Normally SOH (Control-A, ASCII 1). There should be no reason
- to change this.
-
- TIME-OUT @i<value>@\How many seconds the other Kermit should wants before
- being asked for retransmission. Unfortunately, the Cyber has no way of
- timing out so this parameter is ignored.
- @End(Description)
- @End(Description)
-
- @index<SHOW>
- SHOW@\Display current SET parameters, version of Kermit-170, and other
- information.
-
- @index<STATUS>
- STATUS@\Give statistics about the most recent file transfer.
- @End(Description)
-
- @Section<Installation>
-
- Cyber Kermit is distributed in two forms. If you received it from
- Columbia University, the sources are in UPDATE source format. If
- you received it from the University of Texas, it will be in UPDATE
- program library format. Other formats may be written by the
- University of Texas upon request.
-
- The Cyber Kermit source comes in two files. One file (KERMUPL)
- will contain the FTN5 source code for Kermit itself. The other
- file (AZLBUPL) contains the COMPASS I/O and low level support
- routines supplied by the University of Arizona. Many of these
- routines are FORTRAN interface routines to the COMPASS system
- macros. These should run as is on NOS/BE systems and most should
- run as is on NOS systems. The routines that are needed from AZLIB
- (the library produced from AZLBUPL) are: CPU.BTZ, CPU.MFS, CPU.VFN, CLOSE,
- CPU.MVC, CPU.SCS, CPU.SXT, CPU.TXS,
- OPEN, READ, WRITER, READC, READW, WRITEW, ENDRUN, RECALL, RTIME,
- MOVECH, XSCS, XSXT, XTXS, XVFN, RETFILE, XCON,
- EXCST, and MACREL. These routines should be assembled and placed
- in the file AZLIB and tested to make sure they work on your system.
- The normal command sequence for this would be:
- @begin<example>
- .@i<UPDATE,P=AZLBUPL,F.>
- .@i<COMPASS,I.>
- .@i<LIBGEN,P=AZLIB.>
- @end<example>
-
- The next thing to do is start building Kermit. There are several
- things to do first, though. Cyber Kermit uses conditional
- compilation for the different operating systems and site dependent
- routines. Modify the parameter definitions in common deck COMCKER
- to reflect your operating system and site. Note that the site
- definition is only usefull if you need to have site specific
- routines or code. Currently, the only site specific routines are used to
- change the duplex from FULL to HALF and back again (ECHOPLX used at
- UA, BELLC used at UT). Site specific code is used at UT due to our
- strange character sets, and for setting ASCII mode for I/O in
- subroutine FOPEN. The display code character set parameter must
- also be modified in common deck COMCKER to reflect the appropriate
- character set (63, 64) in use at your site.
-
- NOS sites will probably have to modify subroutine RDELAY to
- accomodate the different format returned by the RTIME macro.
- If a NOS site would send it's mods back to the University of Texas,
- then this could be conditionally compiled and other NOS sites would
- no longer have to worry about this.
-
- Once the duplex changing (not neccessary at half duplex sites, but
- be sure to change the default duplex in subroutine BLOCK DATA to
- HALFDUP) and the code for setting ASCII I/O has been set up
- debugging can take place. Decide on which version of Cyber Kermit
- you wish to run (OVCAP or SEGLOAD). Most sites are running the
- OVCAP version and installing it in the system nucleus. To build
- the OVCAP version place the following lines in file UPDMODS:
- @begin<example>
- *IDENT,moddeck
- *DEFINE,OVCAP
- @end<example>
- and run the commands:
- @begin<example>
- .@i<UPDATE,P=KERMUPL,F,I=UPDMODS.>
- .@i<FTN5,I,OPT=2.> COMPILE KERMIT SOURCE
- .@i<FTN5,I,OPT=2,B=LIBREL.> COMPILE LIBRARY SOURCE
- .@I<LIBGEN,P=KERMLIB.> BUILD KERMIT LIBRARY
- .@I<LDSET,MAP=SBEX.>
- .@I<LOAD,LGO.> LOAD KERMIT, KERMLIB AND AZLIB
- .@I<NOGO,KERMIT.>
- @end<example>
-
- To build the segload version, place the following segload
- directives into file KERMSEG:
- @begin<example>
- TREE KERMIT-(SET,HLPCMD,EXECMD,SERVER-(RECEIVE,SEND))
- SET INCLUDE SHOW,STATUS,MATCH,SETVAL
- RECEIVE INCLUDE RINIT,RFIEL,RDATA
- SEND INCLUDE SINIT,SFILE,SDATA,SEOF,SBREAK
- KERMIT GLOBAL PROTO,PACKET,DEBUG,MESSAGE,FILEIO,FILEIOC
- END KERMIT
- @end<example>
- and run the commands:
- @begin<example>
- .@i<UPDATE,P=KERMUPL,F.>
- .@i<FTN5,I,OPT=2.> COMPILE KERMIT SOURCE
- .@i<LDSET,LIB=AZLIB>
- .@I<LDSET,MAP=SBEX.>
- .@I<SEGLOAD,I=KERMSEG,B=KERMIT.> LOAD KERMIT, AZLIB
- .@I<LOAD,LGO.>
- .@I<NOGO.>
- @end<example>
-
- To aid in debugging of the OVCAP version, remove the line:
- @begin<example>
- LDSET OMIT=SYSERR.
- @end<example>
- from the COMPASS main program. This was put there to remove
- uneeded (hopefully) code and reduce field length.
-
- Be sure to read the implementation notes in the program source.
- These notes are likely to be the more upto date.
-
- Planned further enhancements to Kermit-170 being done at the University
- of Texas include:
- @begin<example>
-
- - Addition of new server functions: directory, type, delete, etc.
- - Two and Three character checksums.
- - 8th-bit quoting, to allow transfer of binary files with systems that
- can't use the parity bit for data.
- - Repeat processing for data compression.
- - Badly needed performance tuning. Currently we have been experiencing
- 700-900 baud effective data throughput on a 2400 baud line.
- @end<example>
-